/**
 * 顺序栈（用数组表示的栈）
 * 栈是一种特殊的列表
 *
 */
class Stack {
  constructor() {
    this.dataStore = [];
    this.top = 0; //栈顶
  }
  //压栈
  push(element) {
    this.dataStore[this.top++] = element;
  }
  //出栈
  pop() {
    const element = this.dataStore[--this.top];
    this.dataStore.splice(this.top,1)
    return element
  }
  //预览栈顶元素
  peek() {
    return this.dataStore[this.top - 1];
  }
  // 返回栈的长度
  length(){
    return this.top
  }
  isEmpty(){
    return this.top=== 0?true:false
  }
  //清空栈
  clear(){
    this.dataStore = []
    this.top = 0
  }
}
module.exports = Stack
//测试
// stack = new Stack()
// stack.push("chentao")
// stack.push("mazhuang")
// stack.push("liuyi")
// console.log(stack.peek())
// console.log(stack.top)
// stack.clear()
// console.log("------------清空后")
// console.log(stack.top)
// console.log(stack.peek())
